package com.example.studentdemo.service;

import com.example.studentdemo.dto.NotificationDTO;
import com.example.studentdemo.entity.Notification;

import java.util.List;

public interface NotificationService {
    /**
     * 保存通知
     * @param notificationDTO 通知数据传输对象
     * @return 保存的通知实体
     */
    Notification saveNotification(NotificationDTO notificationDTO);

    /**
     * 根据用户ID获取通知列表
     * @param userId 用户ID
     * @param userType 用户类型
     * @return 通知列表
     */
    List<Notification> getNotificationsByUser(Long userId, String userType);

    /**
     * 标记通知为已读
     * @param notificationId 通知ID
     * @param userId 用户ID
     * @return 是否标记成功
     */
    boolean markAsRead(Long notificationId, Long userId);

    /**
     * 获取用户未读通知数量
     * @param userId 用户ID
     * @param userType 用户类型
     * @return 未读通知数量
     */
    Long getUnreadCount(Long userId, String userType);
}